//var a=10

//if(a>5){
//   console.log("hello")
//}
//var str = 'Hello';//string类型
//for(var i=0;i<str.length;i++){
//  console.log(str[i])//输出H e l l o
//}//var定义的变量，会被提升到作用域顶部，所以i可以被访问到，输出H e l l o，但是i的值会被覆盖，所以最后输出undefined。
//console.log(i)
//数据结构：按照一定的规则，把数据组织起来的集合。

// console.log(arr[2])//输出3 索引 || 下标
// arr.unshift('world');//在数组开头添加元素
// console.log(arr)//输出[ 'world', 1, 2, 3, 4, 5, 'hello' ]
// arr.shift();//删除数组开头的元素
// console.log(arr)//输出[ 1, 2, 3, 4, 5, 'hello' ]
// arr.push('world');//在数组末尾添加元素
// console.log(arr)//输出[ 1, 2, 3, 4, 5, 'hello', 'world' ]
// arr.pop();//删除数组末尾的元素
// console.log(arr)//输出[ 1, 2, 3, 4, 5, 'hello' ]
// arr.splice(2,1);//删除数组中从索引2开始的1个元素
// console.log(arr)//输出[ 1, 2, 4, 5, 'hello' ]
// arr.splice(2,0,3);//在数组中从索引2开始插入元素3
// console.log(arr)//输出[ 1, 2, 3, 4, 5, 'hello' ]
// arr.splice(2,1,3);//在数组中从索引2开始删除1个元素，并用元素3替换
// console.log(arr)//输出[ 1, 2, 3, 4, 5, 'hello' ]
// arr.splice(2,1,3,4);//在数组中从索引2开始删除1个元素，并用元素3和4替换
// var arr = [1,2,3,4,5,'hello'];//array类型
// for(var i=0;i<arr.length;i++){//for循环遍历数组
//     arr[i]=arr[i]+1;//将数组中的每个元素加1//输出1 2 3 4 5 hello
// }//var定义的变量，会被提升到作用域顶部，所以i可以被访问到，输出1 2 3 4 5 hello，但是i的值会被覆盖，所以最后输出undefined。
// console.log(arr)//输出[ 2, 3, 4, 5, 6, 'hello' ]
let nums = [2,7,11,15], target = 9;

var twoSum = function(nums, target) {
    let diff={};
    for(let i=0;i<nums.length;i++){//for循环遍历数组
      let item=target-nums[i];//计算目标值减去当前值的差值
      if(diff[item]!==undefined){//如果差值在diff对象中存在，说明找到了两个数的和等于目标值
        return [diff[item],i];//返回两个数的索引
      }else{//如果差值在diff对象中不存在，将当前值和索引存入diff对象中
        diff[nums[i]]=i;
      }
    }
};
console.log(twoSum(nums, target));//输出[0,1]


